盡管有大量第三方工具可幫助您監控、維護 Windows專用服務器上的資源使用情況并對其進行故障排除,但 Microsoft 提供了自己的一套工具和技術。我們將討論并展示一些保持操作系統清晰的最佳方法,更重要的是如何識別和解決資源使用中最常見的問題。
性能監視器
Windows 性能監視器提供了實時檢查資源使用情況的功能。它收集有關活動應用程序和服務如何影響系統性能的數據。該管理單元允許用戶定義閾值、警報、生成通知和自動操作。它還以多種方式生成報告。
在我們進入更多細節之前,我們必須了解當一個或多個資源達到容量并使整個系統爬行(有時停止)時會出現瓶頸。這通常發生在資源配置錯誤、不足以滿足預期負載或組件或應用程序錯誤地請求資源時。
實時分析數據
要訪問性能監視器,請在搜索欄中鍵入perfmon 。MMC(Microsoft 管理控制臺)從概述部分開始,該部分提供了工具的簡短描述,還提供了系統摘要。我們對監控工具下的性能監控部分感興趣
默認情況下,該工具僅使用一個計數器啟動:處理時間。(計數器實際上是一個資源或資源組件的指示器)。
現在為了更好地理解這意味著什么,我們將完成為系統插入最相關計數器的步驟。選擇性能監視器,然后單擊添加按鈕(綠色加號),將彈出一個列表。
5 個主要的 Windows 服務器資源
有 5 種主要資源會影響任何專用服務器的性能:CPU、內存、物理磁盤、網絡和進程。對于其中的每一個,我們將展示最相關的計數器:
中央處理器 -
具有非常高使用率的處理器可能表示提交高負載的低效或損壞的應用程序,或者只是表示處理器沒有提供足夠的計算能力。
計數器:
- Processor: % Processor Time?– 計數器,以百分位測量處理器花費在執行非空閑線程上的時間。
- Processor: % User Time?– 測量處理器在用戶模式下花費的時間百分比的計數器。
- Processor: % Interrupt Time?– 計數器,用于測量處理器在特定采樣間隔內為硬件中斷服務所花費的時間。如果該值大于 15%,這可能表示潛在的硬件故障。
- System: Processor Queue Length?– 此計數器顯示隊列中的線程數量。如果隊列長時間超過 CPU 數量的兩倍,則會導致性能下降。
以下是將這些計數器添加到性能監視器時的外觀:
如果在任何時候您認為圖表過于“擁擠”,只需取消選中計數器旁邊的框,向量將從查看窗格中刪除。如果您希望達到更精細的級別——例如,您已為某些應用程序設置 CPU 親和性以僅使用一些 CPU 內核——那么在添加計數器時,您將獲得選擇所需實例的選項。
在此示例中,我分別選擇了每個 CPU 內核并為每個內核添加了一個實例,因此差異可見。
此粒度適用于可以具有多個實例的所有資源。
記憶 -
內存瓶頸可能表示 RAM 不足、導致內存泄漏的錯誤應用程序或 boot.ini 中的內存開關。這些開關是一種變通方法,可以欺騙操作系統的內存分配,從而為用戶模式提供更多內核的不足。
計數器:
- Memory: % Committed Bytes in Use?– 表示正在使用的虛擬內存量的計數器。如果百分比高于 80%,系統將開始緩慢。
- 內存:可用 Mbytes?- 此計數器指示可用于運行進程的 RAM 量(以 MB 為單位)。如果此計數器低于總安裝 RAM 的 5%,這將增加分頁活動,從而使系統顯著變慢。
- Memory: Free System Page Table Entries?– 顯示系統當前未使用的頁表數量的計數器。這通常表示內存泄漏。它可以通過運行一個空的備用列表來輕松修復。
- 內存:池非分頁字節- 此計數器指示內存的大小(以字節為單位),無法分頁,必須保留在物理內存中,直到不再需要。如果該值大于 175 MB,則很可能是內存泄漏。
物理磁盤 –
有大量問題會導致磁盤使用瓶頸。它們的范圍從不充分的 RAID 到性能緩慢的磁盤和高 IOPS,這些在構建服務器時都沒有考慮在內。磁盤性能計數器可能更難以監控。
管理員經常犯的一個錯誤是跟蹤%Disk Time。從理論上講,這個計數器應該足以顯示磁盤實際繁忙的時間百分比,但微軟解釋了為什么它不是。
計數器:
- LogicalDisk: % Free Space?– 計數器監控可用空間的百分比。
- PhysicalDisk: % Idle Time?– 測量空閑磁盤時間的計數器。
- 物理磁盤:平均。Disk Sec/Read?– 監控數據讀取速度的計數器(以秒為單位)。如果該值高于 25 毫秒,則系統正在經歷延遲。
- 物理磁盤:平均。Disk Sec/Write?– 監控從磁盤寫入數據的速度的計數器。如果該值高于 25 毫秒,則系統正在經歷延遲。
- 物理磁盤:平均。Disk Queue Length?– 此計數器提供一個值,表示等待磁盤可用的 I/O 操作數。如果該值超過可用主軸數量的兩倍,則系統將變慢。
- Memory: Cache Bytes?– 此計數器指示文件系統緩存的內存。如果該值高于 300 MB,則可能出現磁盤瓶頸。
磁盤計數器的粒度是由您可以選擇一個分區或磁盤來應用它們的事實提供的,這可以讓您深入了解哪些故障排除步驟最有可能幫助解決問題。
您可以注意到為分區 C 設置了%Free Space的實例(因為只有一個磁盤,并且與監視整個磁盤的可用空間無關)。能否一次監控一個磁盤或整個陣列取決于系統和設置的功能。
網絡–
網絡瓶頸轉化為無法在網段上有效傳輸數據。對于專用服務器,這通常是指網卡問題、驅動程序問題,或者可能是網絡飽和并需要分段。還有其他因素可能導致網絡中斷,例如拒絕服務攻擊或導致無效流量的惡意軟件。
計數器:
- Network Interface:?Bytes Total/Sec – 監控流量通過網卡的速率的計數器。如果這表明高于 70%,則網絡已飽和或瓶頸是網卡本身
- 網絡接口:輸出隊列長度 - 此計數器指示隊列中等待發送的數據包數量。如果該值大于 2,則網絡飽和。
同樣,粒度可用于根據需要在每個接口的基礎上應用這些計數器。
過程——
進程要么是基于窗口的,要么是基于應用程序的。如果這些進程配置錯誤或行為不當,則可能會出現瓶頸。進程瓶頸可能表現為任何資源的過度使用,因此監控它們也非常重要。
計數器:
- Process: Handle Count?– 表示打開的句柄總數的計數器。如果該值大于 10.000,則很可能發生內存泄漏
- Process: Thread Count?– 提供進程中活動線程總數的計數器。
- Process: Private Bytes?– 此計數器指示其他進程無法共享的內存量。
當然,這些只是我們推薦用于排除系統性能故障的幾個計數器。您越接近確定問題,您可以使用的計數器越細。
一旦掌握了 Windows 專用服務器進程和計數器,您就可以診斷出任何緩慢的進程或系統瓶頸。